package com.enjava.Impl;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.Query;

import org.springframework.beans.factory.annotation.Autowired;

import com.enjava.EMF;
import com.enjava.UsuarioReg;
import com.enjava.excepciones.UsuarioRegistradoException;
import com.enjava.interfaces.DaoRegistro;

public class DaoRegistroForo implements DaoRegistro {

	@Autowired
	EMF emf;
	
	public EMF getEmf() {
		return emf;
	}

	public void setEmf(EMF emf) {
		this.emf = emf;
	}

	@Override
	public boolean guardarUsuario(String mail, String clave) throws UsuarioRegistradoException{
		// TODO Auto-generated method stub
		
		UsuarioReg reg = new UsuarioReg();
		reg.setMailUsuario(mail);
		reg.setClave(clave);
		
		EntityManager em = emf.getEM();
		
		
		
		String jpql = "select usuarioReg from UsuarioReg usuarioReg";
		List<UsuarioReg> usuarios = em.createQuery(jpql).getResultList();
		
		System.out.println(usuarios);

		List<UsuarioReg> usuariosCopia = new ArrayList<UsuarioReg>();
		
		usuariosCopia.addAll(usuarios);
		
		if (usuariosCopia.contains(reg)){
			UsuarioRegistradoException usuarioRegistrado = new UsuarioRegistradoException();
			throw usuarioRegistrado;
		} else {
			em.getTransaction().begin();
	    	em.persist(reg);
	    	em.getTransaction().commit();
		}
		em.close();		
		return true;
	}

}
